<!DOCTYPE html>
<html lang="zh" dir="auto">

<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>完美圆形 | Perfect Circles | 幸福工厂模组</title>
<meta name="keywords" content="">
<meta name="description" content="模组：完美圆形 —— Perfect Circles 圆环修建工具。使用方法： 在一级科技中解锁 Perfect Circles 科技 在“地基 -&gt; Perfect Circles”菜单中可建造一个特殊地基（作为圆心） 按E键">
<meta name="author" content="VisualMOD">
<link rel="canonical" href="https://visualmod.gitee.io/satisfactory-mod/mods/perfect_circles/">
<link crossorigin="anonymous" href="/satisfactory-mod/assets/css/stylesheet.fda8facc5b630094d5b2968a3585893846cba1d07e967f92a271b6a941eb2d90.css" integrity="sha256-/aj6zFtjAJTVspaKNYWJOEbLodB&#43;ln&#43;SonG2qUHrLZA=" rel="preload stylesheet" as="style">
<script defer crossorigin="anonymous" src="/satisfactory-mod/assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG&#43;9vmJ0cTS&#43;ovo0FeA="
    onload="hljs.initHighlightingOnLoad();"></script>
<link rel="icon" href="https://visualmod.gitee.io/satisfactory-mod/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://visualmod.gitee.io/satisfactory-mod/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://visualmod.gitee.io/satisfactory-mod/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://visualmod.gitee.io/satisfactory-mod/apple-touch-icon.png">
<link rel="mask-icon" href="https://visualmod.gitee.io/satisfactory-mod/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="zh" href="https://visualmod.gitee.io/satisfactory-mod/mods/perfect_circles/">
<noscript>
    <style>
        #theme-toggle,
        .top-link {
            display: none;
        }

    </style>
    <style>
        @media (prefers-color-scheme: dark) {
            :root {
                --theme: rgb(29, 30, 32);
                --entry: rgb(46, 46, 51);
                --primary: rgb(218, 218, 219);
                --secondary: rgb(155, 156, 157);
                --tertiary: rgb(65, 66, 68);
                --content: rgb(196, 196, 197);
                --hljs-bg: rgb(46, 46, 51);
                --code-bg: rgb(55, 56, 62);
                --border: rgb(51, 51, 51);
            }

            .list {
                background: var(--theme);
            }

            .list:not(.dark)::-webkit-scrollbar-track {
                background: 0 0;
            }

            .list:not(.dark)::-webkit-scrollbar-thumb {
                border-color: var(--theme);
            }
        }

    </style>
</noscript><meta property="og:title" content="完美圆形 | Perfect Circles" />
<meta property="og:description" content="模组：完美圆形 —— Perfect Circles 圆环修建工具。使用方法： 在一级科技中解锁 Perfect Circles 科技 在“地基 -&gt; Perfect Circles”菜单中可建造一个特殊地基（作为圆心） 按E键" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://visualmod.gitee.io/satisfactory-mod/mods/perfect_circles/" /><meta property="article:section" content="mods" />
<meta property="article:published_time" content="2023-07-06T16:00:00+08:00" />
<meta property="article:modified_time" content="2023-07-06T16:00:00+08:00" />

<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="完美圆形 | Perfect Circles"/>
<meta name="twitter:description" content="模组：完美圆形 —— Perfect Circles 圆环修建工具。使用方法： 在一级科技中解锁 Perfect Circles 科技 在“地基 -&gt; Perfect Circles”菜单中可建造一个特殊地基（作为圆心） 按E键"/>


<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [, 
    {
      "@type": "ListItem",
      "position":  2 ,
      "name": "Mods",
      "item": "https://visualmod.gitee.io/satisfactory-mod/mods/"
    }, 
    {
      "@type": "ListItem",
      "position":  3 ,
      "name": "完美圆形 | Perfect Circles",
      "item": "https://visualmod.gitee.io/satisfactory-mod/mods/perfect_circles/"
    }
  ]
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "完美圆形 | Perfect Circles",
  "name": "完美圆形 | Perfect Circles",
  "description": "模组：完美圆形 —— Perfect Circles 圆环修建工具。使用方法： 在一级科技中解锁 Perfect Circles 科技 在“地基 -\u0026gt; Perfect Circles”菜单中可建造一个特殊地基（作为圆心） 按E键",
  "keywords": [
    
  ],
  "articleBody": "模组：完美圆形 —— Perfect Circles\n圆环修建工具。使用方法：\n在一级科技中解锁 Perfect Circles 科技 在“地基 -\u003e Perfect Circles”菜单中可建造一个特殊地基（作为圆心） 按E键与该地基交互： 在弹出的菜单中可选择地基/墙的类型、偏移量、内侧（Inner）/外侧（Outer） 关闭 Make Perfect 选项后，可以调节圆半径（Custom Radius） 每次调整后会自动重建地基/墙 完成建造后，可以删除特殊地基（圆心） 点击展开英文说明 Perfect Circles is a tool for creating circular foundation arrangements quickly ingame!\nUnlock at the HUB Tier 1 for 300 concrete and find the part at the bottom of the Foundations menu under Special\nHow to use:\nPlace the part and hit E to open the UI when close enough to interact. Everytime a change is made, all spawned foundations are destroyed and the entire assembly rebuilds itself.\nThe controller object will save its settings and rebuild itself every time the session is loaded, however it is recommened that you remove the controller object once you are happy with the configuration and no longer want to make changes.\nThe foundations that are placed are vanilla objects and will remain regardless of if the mod is installed or not.\nUI Functions:\nDrop down menu allows you to select between 1m, 2m, and 4m Foundations.\nDivisions is the number of foundations what will be placed along the circumference of the circle.\nZ Offset will move the entire assembly up or down by the number of centimeters entered.\nRotation will rotate the entire assembly by number of degrees entered.\nMake Perfect checkbox will force the assembly to align all foundation edges on the outside cicumference perfectly, creating a seamless circle.\nPerfect Radius is a readout for what the exact radius would be to achieve perfect edge alignment according to the number of divisions of the circle and the side length of the foundation (8m)\nCustom Radius is a user defined radius. Deselect the Make Perfect checkbox, and type in any radius you want in centimeters.\nColorPIcker UI by Planet Vano\nhttps://www.unrealengine.com/marketplace/en-US/product/color-picker\n返回模组列表 在 ficsit.app 中查看 ",
  "wordCount" : "468",
  "inLanguage": "zh",
  "datePublished": "2023-07-06T16:00:00+08:00",
  "dateModified": "2023-07-06T16:00:00+08:00",
  "author":{
    "@type": "Person",
    "name": "VisualMOD"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://visualmod.gitee.io/satisfactory-mod/mods/perfect_circles/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "幸福工厂模组",
    "logo": {
      "@type": "ImageObject",
      "url": "https://visualmod.gitee.io/satisfactory-mod/favicon.ico"
    }
  }
}
</script>
</head>

<body class="" id="top">
<script>
    if (localStorage.getItem("pref-theme") === "dark") {
        document.body.classList.add('dark');
    } else if (localStorage.getItem("pref-theme") === "light") {
        document.body.classList.remove('dark')
    } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
        document.body.classList.add('dark');
    }

</script>

<header class="header">
    <nav class="nav">
        <div class="logo">
            <a href="https://visualmod.gitee.io/satisfactory-mod" accesskey="h" title="幸福工厂模组 (Alt + H)">幸福工厂模组</a>
            <div class="logo-switches">
                <button id="theme-toggle" accesskey="t" title="(Alt + T)">
                    <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
                        stroke-linejoin="round">
                        <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
                    </svg>
                    <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
                        stroke-linejoin="round">
                        <circle cx="12" cy="12" r="5"></circle>
                        <line x1="12" y1="1" x2="12" y2="3"></line>
                        <line x1="12" y1="21" x2="12" y2="23"></line>
                        <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
                        <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
                        <line x1="1" y1="12" x2="3" y2="12"></line>
                        <line x1="21" y1="12" x2="23" y2="12"></line>
                        <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
                        <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
                    </svg>
                </button>
                <ul class="lang-switch"><li>|</li>
                    <li>
                        <a href="https://visualmod.gitee.io/satisfactory-mod/en/" title="English"
                            aria-label="English">English</a>
                    </li>
                </ul>
            </div>
        </div>
        <ul id="menu">
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/manager" title="模组管理器">
                    <span>模组管理器<small>&nbsp;SMM</small></span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/loader" title="模组加载器">
                    <span>模组加载器<small>&nbsp;SML</small></span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/home/modlist" title="⚙ 模组列表">
                    <span>⚙ 模组列表</span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/search" title="🔍搜索 (Alt &#43; /)" accesskey=/>
                    <span>🔍搜索</span>
                </a>
            </li>
        </ul>
    </nav>
</header>
<main class="main">

<article class="post-single">
  <header class="post-header">
    <div class="breadcrumbs"><a href="https://visualmod.gitee.io/satisfactory-mod">主页</a>&nbsp;»&nbsp;<a href="https://visualmod.gitee.io/satisfactory-mod/mods/">Mods</a></div>
    <h1 class="post-title entry-hint-parent">
      完美圆形 | Perfect Circles
    </h1>
    <div class="post-meta"><span title='2023-07-06 16:00:00 +0800 CST'>七月 6, 2023</span>&nbsp;·&nbsp;VisualMOD

</div>
  </header> 
  <div class="post-content"><p>模组：完美圆形 —— Perfect Circles</p>
<p>圆环修建工具。使用方法：</p>
<ul>
<li>在一级科技中解锁 Perfect Circles 科技</li>
<li>在“地基 -&gt; Perfect Circles”菜单中可建造一个特殊地基（作为圆心）</li>
<li>按<code>E</code>键与该地基交互：
<ul>
<li>在弹出的菜单中可选择地基/墙的类型、偏移量、内侧（Inner）/外侧（Outer）</li>
<li>关闭 Make Perfect 选项后，可以调节圆半径（Custom Radius）</li>
<li>每次调整后会自动重建地基/墙</li>
</ul>
</li>
<li>完成建造后，可以删除特殊地基（圆心）</li>
</ul>

<details>
    <summary><strong>点击展开英文说明</strong></summary>

<p>Perfect Circles is a tool for creating circular foundation arrangements quickly ingame!</p>
<p>Unlock at the HUB Tier 1 for 300 concrete and find the part at the bottom of the Foundations menu under Special<br /><br />How to use:</p>
<p>Place the part and hit E to open the UI when close enough to interact.&nbsp;</p>
<p>Everytime a change is made, all spawned foundations are destroyed and the entire assembly rebuilds itself.</p>
<p>The controller object will save its settings and rebuild itself every time the session is loaded, however it is recommened that you remove the controller object once you are happy with the configuration and no longer want to make changes.</p>
<p>The foundations that are placed are vanilla objects and will remain regardless of if the mod is installed or not.<br /><br />UI Functions:</p>
<p>Drop down menu allows you to select between 1m, 2m, and 4m Foundations.</p>
<p>Divisions is the number of foundations what will be placed along the circumference of the circle.</p>
<p>Z Offset will move the entire assembly up or down by the number of centimeters entered.</p>
<p>Rotation will rotate the entire assembly by number of degrees entered.</p>
<p>Make Perfect checkbox will force the assembly to align all foundation edges on the outside cicumference perfectly, creating a seamless circle.</p>
<p>Perfect Radius is a readout for what the exact radius would be to achieve perfect edge alignment according to the number of divisions of the circle and the side length of the foundation (8m)</p>
<p>Custom Radius is a user defined radius. Deselect the Make Perfect checkbox, and type in any radius you want in centimeters.</p>
<p>&nbsp;</p>
<p><img src="https://i.imgur.com/IvFZfzi.png" alt="" /></p>
<p>&nbsp;</p>
<p>ColorPIcker UI by Planet Vano</p>
<p>https://www.unrealengine.com/marketplace/en-US/product/color-picker</p>

</details>
<li style="list-style: inside disclosure-closed;">
    <a class="deco-none" href="https://visualmod.gitee.io/satisfactory-mod/home/modlist">返回模组列表</a>
</li>
<li style="list-style: inside disclosure-closed;">
    <a class="deco-none" href="https://ficsit.app/mod/PerfectCircles" target="_blank">在 <u>ficsit.app</u> 中查看</a>
</li>



  </div>

  <footer class="post-footer">
    <ul class="post-tags">
    </ul>
  </footer>
</article>
    </main>
    
<footer class="footer">
    <span>&copy; 2023 <a href="https://visualmod.gitee.io/satisfactory-mod">幸福工厂模组</a></span>
    <span>
        Powered by
        <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
        <a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
    </span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
        <path d="M12 6H0l6-6z" />
    </svg>
</a>

<script>
    let menu = document.getElementById('menu')
    if (menu) {
        menu.scrollLeft = localStorage.getItem("menu-scroll-position");
        menu.onscroll = function () {
            localStorage.setItem("menu-scroll-position", menu.scrollLeft);
        }
    }

    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
        anchor.addEventListener("click", function (e) {
            e.preventDefault();
            var id = this.getAttribute("href").substr(1);
            if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
                    behavior: "smooth"
                });
            } else {
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
            }
            if (id === "top") {
                history.replaceState(null, null, " ");
            } else {
                history.pushState(null, null, `#${id}`);
            }
        });
    });

</script>
<script>
    var mybutton = document.getElementById("top-link");
    window.onscroll = function () {
        if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
            mybutton.style.visibility = "visible";
            mybutton.style.opacity = "1";
        } else {
            mybutton.style.visibility = "hidden";
            mybutton.style.opacity = "0";
        }
    };

</script>
<script>
    document.getElementById("theme-toggle").addEventListener("click", () => {
        if (document.body.className.includes("dark")) {
            document.body.classList.remove('dark');
            localStorage.setItem("pref-theme", 'light');
        } else {
            document.body.classList.add('dark');
            localStorage.setItem("pref-theme", 'dark');
        }
    })

</script>
<script>
    document.querySelectorAll('pre > code').forEach((codeblock) => {
        const container = codeblock.parentNode.parentNode;

        const copybutton = document.createElement('button');
        copybutton.classList.add('copy-code');
        copybutton.innerHTML = '复制';

        function copyingDone() {
            copybutton.innerHTML = '已复制！';
            setTimeout(() => {
                copybutton.innerHTML = '复制';
            }, 2000);
        }

        copybutton.addEventListener('click', (cb) => {
            if ('clipboard' in navigator) {
                navigator.clipboard.writeText(codeblock.textContent);
                copyingDone();
                return;
            }

            const range = document.createRange();
            range.selectNodeContents(codeblock);
            const selection = window.getSelection();
            selection.removeAllRanges();
            selection.addRange(range);
            try {
                document.execCommand('copy');
                copyingDone();
            } catch (e) { };
            selection.removeRange(range);
        });

        if (container.classList.contains("highlight")) {
            container.appendChild(copybutton);
        } else if (container.parentNode.firstChild == container) {
            
        } else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
            
            codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
        } else {
            
            codeblock.parentNode.appendChild(copybutton);
        }
    });
</script>
</body>

</html>
